/*
 * @lc app=leetcode.cn id=557 lang=javascript
 *
 * [557] 反转字符串中的单词 III
 */

// @lc code=start
/**
 * @param {string} s
 * @return {string}
 */
var reverseWords = function (s) {
  // let str = ''
  // let len = s.length
  // let left = 0
  // let right = 0
  // for (let i = 0; i < len; i++) {
  //   if (s[i] === ' ') {
  //     right = i - 1
  //     for (let j = right; j >= left; j--) {
  //       str += s[j]
  //     }
  //     str += ' '
  //     left = i + 1
  //   }
  //   else if (i === len - 1) {
  //     right = i
  //     for (let j = right; j >= left; j--) {
  //       str += s[j]
  //     }
  //   }
  // }
  // return str
  const ret = []
  const length = s.length
  let i = 0
  while (i < length) {
    let start = i
    while (i < length && s.charAt(i) != ' ') {
      i++
    }
    for (let p = start; p < i; p++) {
      ret.push(s.charAt(start + i - 1 - p))
    }
    while (i < length && s.charAt(i) == ' ') {
      i++
      ret.push(' ')
    }
  }
  return ret.join('')
}
// @lc code=end

